【初心者向け】各OSのTCPポート番号からプロセス/サービス調査コマンド入門
こんにちは、コカコーラ大好きカジです。
各OSのTCPポートが何のプロセス/サービスが利用しているのか、調査方法に苦慮することがあると思います。
構築直後の状態でAmazon Linux,CentOS,Ubuntu,Windows2012について確認する方法を自分も忘れやすいのでまとめてみました。
どなたかのお役に立てれば幸いです。
Amazon Linux
AMIは、amzn-ami-hvm-2016.03.1.x86_64-gp2 (ami-29160d47)を利用して確認しています。
lsofを利用して調査します。
[ec2-user@ip-10-1-11-141 ~]$ sudo lsof -Pi | grep ':22' sshd 2334 root 3u IPv4 9800 0t0 TCP *:22 (LISTEN) sshd 2334 root 4u IPv6 9802 0t0 TCP *:22 (LISTEN)
プロセスから、プロセスのパスを確認
[ec2-user@ip-10-1-11-141 ~]$ ps -ef | grep sshd root 2334 1 0 08:35 ? 00:00:00 /usr/sbin/sshd root 2560 2334 0 09:28 ? 00:00:00 sshd: ec2-user [priv] ec2-user 2562 2560 0 09:28 ? 00:00:00 sshd: ec2-user@pts/0 ec2-user 2591 2563 0 09:28 pts/0 00:00:00 grep --color=auto sshd
rpmコマンドでバージョン確認
[ec2-user@ip-10-1-11-141 ~]$ rpm -qif /usr/sbin/sshd Name : openssh-server Version : 6.6.1p1 Release : 25.61.amzn1 Architecture: x86_64 Install Date: 2016年04月29日 23時58分47秒 <省略>
CentOS6、CentOS7
AMIは、以下を利用して確認しています。
CentOS Linux 7 x86_64 HVM EBS 1602-b7ee8a69-ee97-4a49-9e68-afaee216db2e-ami-d7e1d2bd.3 (ami-eec1c380)
CentOS Linux 6 x86_64 HVM EBS 1602-74e73035-3435-48d6-88e0-89cc02ad83ee-ami-21e6d54b.3 (ami-fa3d3f94)
CentOSはlsofがインストールされていません。
インストール不可の場合は、ssコマンドで確認できると思います。
[centos@ip-10-1-11-25 ~]$ sudo ss -pantu | grep ':22' tcp LISTEN 0 128 *:22 *:* users:(("sshd",pid=771,fd=3)) tcp ESTAB 0 36 10.1.11.25:22 126.131.100.97:63466 users:(("sshd",pid=2560,fd=3),("sshd",pid=2558,fd=3)) tcp LISTEN 0 128 :::22 :::* users:(("sshd",pid=771,fd=4)) [centos@ip-10-1-11-25 ~]$
プロセスから、プロセスのパスを確認
[centos@ip-10-1-11-25 ~]$ ps -ef | grep sshd root 771 1 0 08:35 ? 00:00:00 /usr/sbin/sshd -D root 2558 771 0 09:26 ? 00:00:00 sshd: centos [priv] centos 2560 2558 0 09:26 ? 00:00:00 sshd: centos@pts/0 centos 2582 2561 0 09:26 pts/0 00:00:00 grep --color=auto sshd [centos@ip-10-1-11-25 ~]$
rpmコマンドでバージョン確認
[centos@ip-10-1-11-25 ~]$ rpm -qif /usr/sbin/sshd Name : openssh-server Version : 6.6.1p1 Release : 23.el7_2 Architecture: x86_64 Install Date: 2016年02月22日 17時13分26秒 Group : System Environment/Daemons Size : 939088 License : BSD Signature : RSA/SHA256, 2016年01月14日 23時09分21秒, Key ID 24c6a8a7f4a80eb5 Source RPM : openssh-6.6.1p1-23.el7_2.src.rpm <省略>
Ubuntu 1204、Ubuntu 1404
AMIは、以下を利用しています。
ubuntu/images/hvm-ssd/ubuntu-trusty-14.04-amd64-server-20150325 (ami-936d9d93)
ubuntu/images/hvm-ssd/ubuntu-precise-12.04-amd64-server-20150930 (ami-0ec1580e)
lsofを利用して調査します。
ubuntu@ip-10-10-10-66:~$ sudo lsof -Pi | grep -e ':22' | grep LISTEN sshd 941 root 3u IPv4 8876 0t0 TCP *:22 (LISTEN) sshd 941 root 4u IPv6 8878 0t0 TCP *:22 (LISTEN)
プロセスから、プロセスのパスを確認
ubuntu@ip-10-10-10-66:~$ ps -ef | grep 941 root 941 1 0 11:47 ? 00:00:00 /usr/sbin/sshd -D root 1133 941 0 11:48 ? 00:00:00 sshd: ubuntu [priv] ubuntu 1227 1188 0 11:53 pts/0 00:00:00 grep --color=auto 941
aptコマンド系では、rpm -qfのようなファイルからのバージョン確認するコマンドがありません。 各プロセスのコマンドオプションを確認しバージョンを確認する必要があります。
ubuntu@ip-10-10-10-66:~$ /usr/sbin/sshd -V unknown option -- V OpenSSH_6.6.1p1 Ubuntu-2ubuntu2.3, OpenSSL 1.0.1f 6 Jan 2014
sshdにバージョン確認オプションはないのですが、上記のように表示されます。
aptからの確認
ubuntu@ip-10-10-10-66:~$ apt-cache show ssh Package: ssh Priority: optional Section: net Installed-Size: 29 <省略> Architecture: all Source: openssh Version: 1:6.6p1-2ubuntu2.3 Depends: openssh-client (>= 1:6.6p1-2ubuntu2.3), openssh-server (>= 1:6.6p1-2ubuntu2.3) Filename: pool/main/o/openssh/ssh_6.6p1-2ubuntu2.3_all.deb Size: 1114 <省略>
Windows2012
AMIは、Windows_Server-2012-RTM-Japanese-64Bit-Base-2016.03.09 (ami-7b222c15)を利用して確認しています。
Windowsはlsofなんてありませんね。コマンドプロンプトからnetstatとtasklistコマンドで確認します。
C:\Users\Administrator>netstat -aon | findstr 3389 アクティブな接続 プロトコル ローカル アドレス 外部アドレス 状態 PID TCP 0.0.0.0:3389 0.0.0.0:0 LISTENING 1956 TCP 10.10.10.174:3389 126.131.100.97:63066 ESTABLISHED 1956 TCP [::]:3389 [::]:0 LISTENING 1956 UDP 0.0.0.0:3389 *:* 1956 UDP [::]:3389 *:* 1956
上記のPIDからプロセスを調査します。
C:\Users\Administrator>tasklist | findstr 1956 svchost.exe 1956 Services 0 52,280 K
svchost.exeの場合は、起動時に動作し、複数のサービスを起動するためわからないので以下のコマンドで調査します。
C:\Users\Administrator>tasklist /svc | findstr 1956 svchost.exe 1956 TermService C:\Users\Administrator>
参考元
Windowsで該当のコマンドが全くわからなかったので、参考にさせて頂きました。